Programs written in compiled programming languages typically require debugging. A debugger is a computer software program used to test and debug programs. A user generally steps through the program from stopping point to stopping point (e.g., breakpoints) and stops the execution of a program at each of these stop events.